package com.dlpu.xihu.controller;

import com.dlpu.xihu.model.Hotel;
import com.dlpu.xihu.model.HotelMany;
import com.dlpu.xihu.service.HotelService;
import org.apache.ibatis.annotations.Select;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;

import java.util.List;
import java.util.Map;
@Controller
@RequestMapping("hc")//自定义映射路径
public class HotelController {
    //调用业务层获取操作结果
    @Autowired //自动注入
            HotelService hs;
    @RequestMapping("fAll")//方法路径
    public String findAll(Map<Object,Object> map){
        //1、接取前台传递的数据
        //2、利用自动注入方式创建的接口/实现类的对象调用对应的功能，并接取返回值
        //3、处理返回值(省略)
        //4、创建Map/Model/ModelAndView 对象，通过对象调用对应的方法，向前台传递数据
        //5、跳转页面(只需要写页面的名字即可，前缀和后缀已经在配置文件中配置完成)
//        List<Hotel> list = hs.findAll();
        List<Hotel> list = hs.findAll();//接取返回值的快捷键ctrl+alt+v
        //System.out.println(list);
        //将list集合传递给前台，通过Map集合
        //通过map集合的put方法进行传递参数
        map.put("hotelList",list);//键值对，键名自定义，值为传递参数的变量/对象名
        return "hotel";
    }
    //RequestParam:页面发送的请求参数，
    @RequestMapping("findById")
    public String findById(@RequestParam("id") int id,Map<Object,Object> map){//@RequestParam("页面传递参数的名字")
        System.out.println(id);
        //1、接取前台传递的数据--完成
        //2、利用自动注入方式(创建的接口/实现类的对象)调用对应的功能，并接取返回值
        Hotel h = hs.findById(id);
        //3、处理返回值(省略)
        //4、创建Map/Model/ModelAndView 对象，通过对象调用对应的方法，向前台传递数据
        map.put("hotel",h);
        //5、跳转页面(只需要写页面的名字即可，前缀和后缀已经在配置文件中配置完成)
        return "hotelInfo";
    }
    //一对多方法
    @RequestMapping("findByMany")
    public String findByMany(@RequestParam("id")int id,Map<Object,Object> map){
        //1、接取前台传递的数据
        //2、利用自动注入方式创建的接口/实现类的对象调用对应的功能，并接取返回值
        List<HotelMany> list = hs.findByMany(id);
        //3、处理返回值(省略)
        //4、创建Map/Model/ModelAndView 对象，通过对象调用对应的方法，向前台传递数据
        System.out.println(list);
        map.put("m",list.get(0));
        map.put("mlist",list);
        //map.put("a","asd");
        //5、跳转页面(只需要写页面的名字即可，前缀和后缀已经在配置文件中配置完成)
        return "hotelManyInfo";
    }
    //酒店首页显示前两条数据
    @RequestMapping("f2")
    public String findBy2(Map<Object,Object> mm){
        //通过接口对象调用指定的功能，并接取返回值
        List<Hotel> hlist = hs.findIntex();
        //创建Map集合对象，通过put方法将集合传递回页面
        mm.put("hotelList",hlist);
        return "hotelIntex";
    }
}

